package model;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class ListasDeReproducao {
	private List<ListaDeReproducao> playLists;
	
	public ListasDeReproducao(){
		playLists = new ArrayList<ListaDeReproducao>();
	}
	
	public void addListaDeReproducao(ListaDeReproducao playList) throws Exception{
		if(playLists.contains(playList)){
			throw new Exception("Esta playList ja existe no conjunto de Listas");
		}
		playLists.add(playList);
	}
	
	public void removeListaDeReproducao(ListaDeReproducao playList){
		playLists.remove(playList);
	}
	
	public void removeListaDeReproducaoPeloNome(String nome) throws Exception{
		ListaDeReproducao playList = buscaListaDeReproducao(nome);
		removeListaDeReproducao(playList);
	}
	
	public ListaDeReproducao buscaListaDeReproducao(String nome) throws Exception{
		Iterator <ListaDeReproducao> iterador = playLists.iterator();
		while (iterador.hasNext()){
			ListaDeReproducao listaAtual = iterador.next();
			if (nome.equals(listaAtual.getNome())){
				return listaAtual;
			}
		}
		throw new Exception("playList nao Encontrada");
		
	}
	
	public List<String> exibeListasDeReproducaoAtuais(){
		List<String> listDeNomesDasListasDeReproducao = new ArrayList<String>();
		Iterator <ListaDeReproducao> iterador = playLists.iterator();
		while (iterador.hasNext()){
			ListaDeReproducao listaAtual = iterador.next();
			String nome = listaAtual.getNome();
			listDeNomesDasListasDeReproducao.add(nome);
		}
		return listDeNomesDasListasDeReproducao; // se voltar vazio é porque nao o objeto ListasDeReproducao encontra-se vazio.
	}
	
	
}


